Problem s provadenim SQL skriptu pres ADO

Otázka od: Martin Krim

23. 6. 2004 9:40

DD,

napsal jsem jednoduchou app, ktera provadi sql skript (od 'GO' do 'GO') na MS
SQL Serveru. Skript provadim pomoci ADO, nikoliv vsak pres ADO Express, ale
primo volam metody COM rozhrani. Takrka u vsech zakazniku funguje vse bez
problemu, krome jednoho. Skript, ktery provadim obvykle smaze vsechny data
(DELETE FROM tbl1) v jedne tabulce a pak do te same tabulky nasype (INSERT ...
) nova data (jedna se o aktualizaci ciselnikovych hodnot). U problemoveho
zakaznika dojde k uspesnemu smazani starych dat, ale uz se mu do tabulky
nenasypou data nova. Bohuzel ADO mi nevraci zadny kod chyby (HRESULT metody
Execute objektu Command je roven nule) a tvrdi, ze probehnuvsi operace byla
dokoncena uspesne - coz je nysmysl - uspesne se provedl pouze DELETE, ale
INSERT uz neprobehl - z praxe vim, ze moje implementace odchytavani chyb
funguje bez problemu a myslim si, ze jako programator jsem nic nezvoral, presto
me tento ojedinely problem dost zere. Problemovy zakaznik pouziva WinXP Pro SP1
CZ, navic kdyz se skript nepodarilo provest pres ADO, tak j
sem musel rychle vymyslet alternativni reseni - pouzil jsem utilitku osql.exe
(predpokladam, ze jede pres ODBC), kde je vsechno bez problemu (takze MS SQL
Server neni nijak nakopnuty). Nenapada vas neco??

S pozdravem

Martin Krim

Odpovedá: Miso

23. 6. 2004 10:09

----- Original Message -----
From: "Martin Krim" <krim@nzservis.cz>

> sem musel rychle vymyslet alternativni reseni - pouzil jsem utilitku
osql.exe (predpokladam, ze jede pres ODBC), kde je vsechno bez problemu
(takze MS SQL Server neni nijak nakopnuty). Nenapada vas neco??
>

..len tak strelim, nemohol by byt u zakaznika problem s local settings, t.j.
problem s DECIMAL SEPARATOR, DATE FORMAT a pod...?
..skus sa s tym pohrat..

Miso


Odpovedá: Martin Krim

23. 6. 2004 11:04

dobry pokus, ale DATEFORMAT nastavuju explicitne (uz jsem se davno proskolil
 , DECIMAL SEPARATOR na MS SQL Serveru ??, i kdyby, tak to neni aktualni,
protoze des. cisla ve skriptu nepouzivam, navic pokud by DATEFORMAT byl
nevyhovujici, tak skript spadne a ADO by melo vratit chybu (mam odzkouseno)

>
> ..len tak strelim, nemohol by byt u zakaznika problem s local settings,
t.j.
> problem s DECIMAL SEPARATOR, DATE FORMAT a pod...?
> ..skus sa s tym pohrat..
>



Odpovedá: Erik Salaj, Winsoft

23. 6. 2004 11:29

> napsal jsem jednoduchou app, ktera provadi sql skript (od 'GO' do 'GO') na
MS SQL Serveru. Skript provadim pomoci ADO, >nikoliv vsak pres ADO Express,
ale primo volam metody COM rozhrani. Takrka u vsech zakazniku funguje vse
bez problemu, krome >jednoho. Skript, ktery provadim obvykle smaze vsechny
data (DELETE FROM tbl1) v jedne tabulce a pak do te same tabulky >nasype
(INSERT ... ) nova data (jedna se o aktualizaci ciselnikovych hodnot). U
problemoveho zakaznika dojde k uspesnemu >smazani starych

skus skontrolovat pomocou MS SQL Profilera, ci ADO posiela
SQL prikazy na databazovy server a ake prikazy posiela

Erik



Odpovedá: Martin Krim

23. 6. 2004 11:40

SQL Profiler neprichazi v uvahu je to na druhym konci republiky, navic u
toho pocitace sedi zenska, ktera neumi poslat email s prilohou


> skus skontrolovat pomocou MS SQL Profilera, ci ADO posiela
> SQL prikazy na databazovy server a ake prikazy posiela



Odpovedá: Erik Salaj, Winsoft

23. 6. 2004 12:02

> SQL Profiler neprichazi v uvahu je to na druhym konci republiky, navic u
> toho pocitace sedi zenska, ktera neumi poslat email s prilohou

tak skus dat tie SQL prikazy do storovanej procedury a over si, ci sa
ta procedura zavola, resp. v nej skontroluj udaje. Obavam sa, ze inak
ako takymto experimentovanim pricinu problemu nezistis. Mozes
este skusit aktualizovat software, t.j. MDAC na danom pocitaci.

Erik